package cn.edu.sdjzu.xg.bysj.service;


import cn.edu.sdjzu.xg.bysj.dao.GraduateProjectCategoryDao;
import cn.edu.sdjzu.xg.bysj.domain.Degree;
import cn.edu.sdjzu.xg.bysj.domain.GraduateProjectCategory;
import util.JdbcHelper;
import util.Pagination;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;

public final class GraduateProjectCategoryService {
	private GraduateProjectCategoryDao graduateProjectCategoryDao =
			GraduateProjectCategoryDao.getInstance();
	//本类的一个对象引用，保存自身对象
	private static GraduateProjectCategoryService graduateProjectCategoryService =
			new GraduateProjectCategoryService();
	//私有的构造方法，防止其它类创建它的对象
	private GraduateProjectCategoryService(){}
	//静态方法，返回本类的惟一对象
	public synchronized static GraduateProjectCategoryService getInstance() {

		return graduateProjectCategoryService;
	}

	public Collection<GraduateProjectCategory> findAll
			(List conditionList, Pagination pagination) throws SQLException {
		Connection connection = JdbcHelper.getConn();
		Collection<GraduateProjectCategory> graduateProjectCategories =
				graduateProjectCategoryDao.findAll(conditionList,pagination,connection) ;
		JdbcHelper.close(connection);
		return graduateProjectCategories;
	}

	public GraduateProjectCategory find(Integer id) throws SQLException {
		Connection connection = JdbcHelper.getConn();
		GraduateProjectCategory graduateProjectCategory =
				graduateProjectCategoryDao.find(id,connection);
		JdbcHelper.close(connection);
		return graduateProjectCategory;
	}

	public boolean update(GraduateProjectCategory graduateProjectCategory)
			throws SQLException {
		Connection connection = JdbcHelper.getConn();
		//将自动提交设为false,开始事务
		connection.setAutoCommit(false);
		Boolean updated =false;
		try {
			//增加用户
			updated = graduateProjectCategoryDao.update(graduateProjectCategory,connection);
			//提交事务
			connection.commit();

		}catch (Exception e){
			//回滚
			connection.rollback();

		}finally {
			//将自动提交设为true，结束事务
			connection.setAutoCommit(true);
			JdbcHelper.close(connection);
		}
		return updated ;
	}

	public boolean add(GraduateProjectCategory graduateProjectCategory) throws SQLException {
		Connection connection = JdbcHelper.getConn();
		//将自动提交设为false,开始事务
		connection.setAutoCommit(false);
		Boolean added =false;
		try {
			//增加用户
			added = graduateProjectCategoryDao.add
					(graduateProjectCategory,connection);
			//提交事务
			connection.commit();

		}catch (Exception e){
			//回滚
			connection.rollback();

		}finally {
			//将自动提交设为true，结束事务
			connection.setAutoCommit(true);
			JdbcHelper.close(connection);
		}
		return added ;
	}
	public boolean delete(Integer id) throws SQLException{
		Connection connection = JdbcHelper.getConn();
		//将自动提交设为false,开始事务
		connection.setAutoCommit(false);
		Boolean deleted =false;
		try {
			//增加用户
			deleted = graduateProjectCategoryDao.delete(id,connection);
			//提交事务
			connection.commit();

		}catch (Exception e){
			//回滚
			connection.rollback();

		}finally {
			//将自动提交设为true，结束事务
			connection.setAutoCommit(true);
			JdbcHelper.close(connection);
		}
		return deleted ;
	}
}
